home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Internet / WWW / gform.1.1 / gform.txt < prev    next >
Text File  |  1995-10-09  |  6KB  |  178 lines

  1. gform Version 1.1d notes.    10-Oct-95 HR
  2.  
  3. Also note that docco is available in HTML as gform.html and for the
  4. latest check http://www.swin.edu.au/csit/gform.html
  5.  
  6. 1.0     gform - generic web forms handler
  7.  
  8.     The problem with forms is that they all need their own
  9.    program or script to handle the fields in the form and perform
  10.   some sort of action. Most often you want to collect submitted forms 
  11.   in a file or send it thru the mail to yourself or someone else
  12.   who can colate these.  
  13.    
  14.    I find that web information providers are generally not programmers
  15.    and therefor can not easily write their own form programs.
  16.  
  17.    gform addresses the problem of application style forms.
  18.    It enables the results of a form to be formatted and send 
  19.    to a file or via the mail. ( You could also forward mail to
  20.    a "mail-to-print" gateway and get hardcopies ).
  21.  
  22. 1.1 How it works
  23.  
  24.     In HTML you use the tag FORM to specify a form and you use 
  25.     'ACTION' to describe which scipt/program will handle the form
  26.     data. You specfy the ACTION as 'gform'
  27.  
  28.     In the HTML tag set there is a tag for comment <!-- .. --> 
  29.     What gform does is read comments that start with <!--gform ... -->
  30.     These special comments contain commands for gform. 
  31.     Any number of these <!--gform ..--> comments maybe used anywhere
  32.     in the file. 
  33.  
  34.     (NOTE: The old TAG format of <!gform is still supported and will
  35.      probably work Ok, but it is not the correct syntax for
  36.      a HTML comment. Therefor the "<!--gform" form is encouraged.)
  37.  
  38.     Gform works with various FORM specifiers such as Textarea, 
  39.     radio buttons, checkboxes, multiple choice selections. 
  40.  
  41. 1.2 syntax of gform commands
  42.  
  43.     There are 2 types of <!--gform ... --> commandlines. 
  44.  
  45.     Firstly, variables and text strings. Variables start with
  46.     a '$' sign followed by the variable name as specified on
  47.     the HTML INPUT tag in the HTML form file. The varables you use
  48.     should be those that you specified in the INPUT tags.
  49.     If the variable doesn't match, it will look for the variable
  50.     in the"environment" (See environement variables notes).
  51.     If it can't find it there it will return "null".
  52.     Beaware that "type=checkbox" returns "null" if it is 
  53.     unticked. This is a side effect of how forms are handled.
  54.  
  55.     You can also specify variables by enclosing them with
  56.     brackets and prefixing a dollar char: '$(variable)'
  57.          This is handy if you want text straight after the variable 
  58.     name. 
  59.  
  60.     Variables maybe freely mixed with text. The following example 
  61.     will send the text string and replace the "$name" variable 
  62.     with what was given in the form submission.
  63.  
  64.     <!--gform "Form submitted by: $name"-->
  65.  
  66.     You will have to specify newlines and tabs by escaping them.
  67.     by preceding a special char with a '\'. 
  68.         The following escaped chars are recognised:
  69.  
  70.         \n    - newline
  71.         \t    - tab
  72.         \f    - form feed
  73.         \r     - return
  74.         \$    - Escape a dollar sign
  75.         \"    - Escape a double quote
  76.         \\    - Escape a slash 
  77.  
  78.     So using the above example with a newline appended;
  79.  
  80.     <!--gform "Form submitted by: $name\n And more text"-->
  81.  
  82. 2.0     There are 2 special variables $(date) and $(time) that can be
  83.     used to return the current date and time.
  84.  
  85. 2.1    Environment variables.
  86.  
  87.     An extra bit was added (6-oct-95) that returns the values
  88.     of CGI environment variables.
  89.  
  90.     For example;
  91.  
  92.     <!--gform "Remote host is: $(REMOTE_HOST)\n"-->
  93.  
  94.     will return the value of the remote host that submitted the
  95.     form. 
  96.  
  97.     These variables can also be seen in action with the "test-cgi"
  98.     shell script that comes with the CGI distribution.
  99.  
  100.     The following variables exist:
  101.     
  102.     SERVER_VERSION        REDIRECT_REQUEST
  103.     SERVER_SOFTWARE        REDIRECT_URL
  104.     SERVER_NAME        REDIRECT_STATUS
  105.     SERVER_PORT        GATEWAY_INTERFACE
  106.     REMOTE_HOST        SERVER_PROTOCOL
  107.     REMOTE_ADDR        REQUEST_METHOD
  108.     REMOTE_USER        PATH_INFO
  109.     REMOTE_GROUP        PATH_TRANSLATED
  110.     REMOTE_IDENT        SCRIPT_NAME
  111.     DOCUMENT_ROOT        QUERY_STRING
  112.     ANNOTATION_SERVER    CONTENT_TYPE
  113.     AUTH_TYPE        CONTENT_LENGHT
  114.     HTTP_ACCEPT
  115.     HTTP_USER_AGENT
  116.     HTTP_REFERER
  117.     
  118.     (The usefullness of variables with gform is debatable.
  119.      However, it was easy to implement. The meaning of all these
  120.     is documented elsewhere, try http://www.yahoo.com )    
  121.  
  122. 2.1
  123.     The second commandline type that is recognised are lines with 
  124.     keywords.  These control where and how the form data is handled.
  125.         The following are recognised.
  126.  
  127.     The next line will put the results in the file "/path/of/file"
  128.  
  129.     <!--gform deliver=file "/path/of/file"-->
  130.  
  131.     The next example will email the results to "address@swin.edu.au"
  132.  
  133.     <!--GFORM deliver=mail "address@swin.edu.au"-->
  134.  
  135.     and optionally specify a subject
  136.  
  137.     <!--gform deliver=mail "address@swin.edu.au" subject="form Submission"-->
  138.     To print the results directly to a printer use, 
  139.  
  140.     <!--gform deliver=print "hp"-->
  141.  
  142.     where "hp" is the name of a printer as found in your /etc/printcap
  143.  
  144.     This following example displays the HTML file 'thanks.html' after 
  145.     the form has been submitted. The pathname of "thanks.html" is 
  146.     relative to your WEB directory (Absolute pathnames can also be 
  147.     given).
  148.  
  149.     <!--gform reply="thanks.html"-->
  150.  
  151.     (commands and variables are case-insensative)
  152.  
  153.     There is a compile time option that can enable tilde ( ~ )
  154.   character file expansion. If enabled, a "~user" in the http reference
  155.   will expand to a users home directory and a subdirectory 
  156.   if so configured.
  157.  
  158. For example; 
  159.  
  160.     ~harry/foo.html
  161.  
  162. will expand to the users home directory ( plus to whatever USERDIR is
  163. defined to be . See INSTALL notes ) 
  164.  
  165. and 
  166.  
  167.     <!--gform reply="/~user/html/foo.html"--> 
  168.  
  169. is also expanded to a users home directory.
  170.  
  171. 1.4 Complete examples.
  172.  
  173.     See the files
  174.     sample.html
  175.     sample2.html 
  176.     sample3.html 
  177.  
  178.